#ifndef _MAP_H_
#define _MAP_H_

#include "List.h"

#define Map_DEF

#define Map_SHARED \
FN(void, begin, int keyType, int valType); \
FN(unsigned long, size); \
FN(int, isEmpty); \
FN(int, put, void *key, void *value); \
FN(int, containsKey, void *key); \
FN(int, containsValue, void *value); \
FN(void *, get, void *key); \
FN(int, remove, void *key); \
FN(List *, keySet); \
FN(List *, values);

#define Map_EXCLUSIVE

MAP_OBJ(Map)

#endif
